Техническая архитектура ПО
Общая информация
Основные компоненты архитектуры
2. Data Processing Layer (Perl / Go) Отвечает за обработку событий, агрегацию статистики и формирование витрин данных. Основные функции:
- дедупликация событий;
- агрегация по браузеру, ОС, устройству, провайдеру;
- расчёт статистических (показы, клики, досмотры и тд, а также фрод-метрик (IVT);
- экспорт данных в ClickHouse, mySQL и S3-архивы.
3. Хранилище данных (ClickHouse + mySQL+S3) mySQL используется для хранения агрегированных данных и формирования отчётов в реальном времени. ClickHouse - для долговременного хранения логов, хранения предагрегированных данных
S3 - для хранения резервных копий.
4. API-шлюз и сервис авторизации (Keycloak) Обеспечивает безопасный доступ к данным и аутентификацию пользователей по OAuth 2.0. Все запросы к API проходят через Nginx-reverse proxy и проверку токена доступа.
5. Пользовательский интерфейс (PHP Zend) Реализует отображение данных в виде таблиц, графиков и фильтров. UI взаимодействует с backend-API через HTTPS, поддерживает фильтрацию по кампаниям, датам и техническим параметрам.
6. CI/CD и инфраструктура (GitLab, Docker) Сборка, тестирование и деплой выполняются автоматически через GitLab CI/CD. Контейнеризация сервисов — Docker Compose.
Технологический стек
| Компонент | Технология / Инструмент | Назначение | |
| Frontend | PHP Zend | Веб-интерфейс и визуализация | |
| Backend | Perl, Go | REST API и обработка данных | |
| Data ingestion | Perl (FastCGI), RabbitMQ | Приём и маршрутизация событий | |
| Database | ClickHouse, mySQL | Хранилище статистики и конфигураций | |
| Object storage | S3 | Резервное копирование | |
| Authentication | Keycloak | Авторизация и разграничение доступа | |
| Infrastructure | Docker, GitLab CI | Контейнеризация и деплой | |
| Monitoring | Zabbix, Grafana | Мониторинг и оповещение |
Безопасность и шифрование
- Все соединения между компонентами защищены с помощью TLS 1.2+.
- Доступ к базам данных ограничен IP-фильтрацией и многофакторной аутентификацией.
- Данные в хранилищах зашифрованы
Масштабирование и отказоустойчивость
- Collect-сервисы и обработчики событий горизонтально масштабируются через балансировщик (HAProxy).
- ClickHouse — в режиме репликации и шардинга.
- Ежедневное резервное копирование всех данных и конфигураций.
- В случае сбоя предусмотрено автоматическое восстановление из бэкапов (RPO ≤ 1 час, RTO ≤ 3 часа).